// pages/index/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    currentTab: 0, // 当前选中的标签页（0：最新待抢，1：已完成）
    isLoading: true, // 是否加载中（控制骨架屏）
    isLogin: false, // 是否已登录
    showGrabModal: false, // 是否显示抢单确认弹窗
    showToast: false, // 是否显示提示弹窗
    toastType: 'success', // 提示类型（success/error）
    toastText: '', // 提示文本
    currentOrderId: '', // 当前操作的订单ID
    currentOrderTitle: '', // 当前操作的订单标题
    currentOrderTimeLimit: '', // 当前操作的订单时效要求
    // 待抢订单列表（模拟数据）
    pendingOrders: [
      {
        orderId: 'OD20240903001',
        publishTime: '10分钟前发布',
        title: 'XX小区家电维修',
        desc: '空调不制冷，需上门检修，要求有维修资质证书',
        location: 'XX区XX路XX小区',
        amount: '150',
        timeLimit: '2小时内'
      },
      {
        orderId: 'OD20240903002',
        publishTime: '25分钟前发布',
        title: '办公室网络调试',
        desc: '5台电脑无法连接WiFi，需排查路由器及设备问题',
        location: 'XX商务大厦15楼',
        amount: '200',
        timeLimit: '1小时内'
      },
      {
        orderId: 'OD20240903003',
        publishTime: '1小时前发布',
        title: '家庭保洁服务',
        desc: '两室一厅日常保洁，需自带基础清洁工具',
        location: 'XX花园3栋',
        amount: '120',
        timeLimit: '3小时内'
      }
    ],
    // 已完成订单列表（模拟数据）
    completedOrders: [
      {
        orderId: 'OD20240902058',
        completeTime: '2024-09-02 15:30',
        title: 'XX超市设备维修',
        location: 'XX超市负1楼',
        profit: '180'
      },
      {
        orderId: 'OD20240902055',
        completeTime: '2024-09-02 10:15',
        title: '居民楼水管更换',
        location: 'XX小区7栋2单元',
        profit: '160'
      }
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 模拟数据加载（2秒后隐藏骨架屏）
    setTimeout(() => {
      this.setData({
        isLoading: false
      });
    }, 2000);

    // 检查登录状态（实际项目中需调用登录接口）
    this.checkLoginStatus();
  },

  /**
   * 检查登录状态
   */
  checkLoginStatus() {
    const token = wx.getStorageSync('token');
    if (token) {
      this.setData({
        isLogin: true
      });
    } else {
      this.setData({
        isLogin: false
      });
    }
  },

  /**
   * 切换标签页
   */
  switchTab(e) {
    const tab = e.currentTarget.dataset.tab;
    console.log('tab:', tab);
    this.setData({
      currentTab: tab
    });
  },

  /**
   * 打开抢单确认弹窗
   */
  grabOrder(e) {
    // 未登录时跳转登录页
    if (!this.data.isLogin) {
      this.showToast('请先登录后再抢单', 'error');
      setTimeout(() => {
        this.toLogin();
      }, 1500);
      return;
    }

    const orderId = e.currentTarget.dataset.orderid;
    // 查找当前订单信息
    const order = this.data.pendingOrders.find(item => item.orderId === orderId);
    if (order) {
      this.setData({
        showGrabModal: true,
        currentOrderId: orderId,
        currentOrderTitle: order.title,
        currentOrderTimeLimit: order.timeLimit
      });
    }
  },

  /**
   * 关闭抢单确认弹窗
   */
  closeGrabModal() {
    this.setData({
      showGrabModal: false,
      currentOrderId: '',
      currentOrderTitle: '',
      currentOrderTimeLimit: ''
    });
  },

  /**
   * 确认抢单
   */
  confirmGrabOrder() {
    // 模拟抢单接口请求
    this.setData({
      isLoading: true
    });

    setTimeout(() => {
      // 模拟抢单成功（实际项目中需根据接口返回结果处理）
      const random = Math.random();
      if (random > 0.3) {
        // 抢单成功：从待抢列表中移除该订单
        const newPendingOrders = this.data.pendingOrders.filter(
          item => item.orderId !== this.data.currentOrderId
        );
        this.setData({
          pendingOrders: newPendingOrders,
          showGrabModal: false,
          isLoading: false
        });
        this.showToast('抢单成功！前往我的订单处理', 'success');
      } else {
        // 抢单失败
        this.setData({
          showGrabModal: false,
          isLoading: false
        });
        this.showToast('手慢了！订单已被抢走', 'error');
      }
    }, 1500);
  },

  /**
   * 显示提示弹窗
   */
  showToast(text, type) {
    this.setData({
      showToast: true,
      toastText: text,
      toastType: type
    });

    // 3秒后自动关闭提示弹窗
    setTimeout(() => {
      this.setData({
        showToast: false,
        toastText: ''
      });
    }, 3000);
  },

  /**
   * 跳转订单详情页
   */
  toOrderDetail(e) {
    const orderId = e.currentTarget.dataset.orderid;
    wx.navigateTo({
      url: `/pages/orderDetail/orderDetail?orderId=${orderId}`
    });
  },

  /**
   * 跳转全部待抢订单页
   */
  toAllPending() {
    wx.navigateTo({
      url: '/pages/allPending/allPending'
    });
  },

  /**
   * 跳转我的待处理订单页
   */
  toMyPending() {
    if (!this.data.isLogin) {
      this.showToast('请先登录', 'error');
      return;
    }
    wx.navigateTo({
      url: '/pages/myPending/myPending'
    });
  },

  /**
   * 跳转我的已完成订单页
   */
  toMyCompleted() {
    if (!this.data.isLogin) {
      this.showToast('请先登录', 'error');
      return;
    }
    wx.navigateTo({
      url: '/pages/myCompleted/myCompleted'
    });
  },

  /**
   * 跳转我的钱包页
   */
  toMyWallet() {
    if (!this.data.isLogin) {
      this.showToast('请先登录', 'error');
      return;
    }
    wx.navigateTo({
      url: '/pages/myWallet/myWallet'
    });
  },

  /**
   * 跳转个人中心页
   */
  toMyCenter() {
    if (!this.data.isLogin) {
      this.toLogin();
      return;
    }
    wx.navigateTo({
      url: '/pages/myCenter/myCenter'
    });
  },

  /**
   * 跳转客服页面
   */
  toCustomerService() {
    // 唤起微信客服会话（实际项目中需配置客服）
    wx.openCustomerServiceChat({
      corpId: 'your_corp_id', // 企业微信corpId（个人小程序无需填写）
      showMessageCard: false
    });
  },

  /**
   * 跳转登录页
   */
  toLogin() {
    wx.navigateTo({
      url: '/pages/login/login'
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 下拉刷新：重新加载数据
    this.setData({
      isLoading: true
    });

    setTimeout(() => {
      // 模拟重新加载数据（实际项目中需调用接口）
      this.setData({
        isLoading: false
      });
      wx.stopPullDownRefresh(); // 停止下拉刷新动画
    }, 1500);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },

  // 格式化时间戳
  formatTime: function (timestamp) {
    if (!timestamp) return '';
    const date = new Date(timestamp);
    return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} ${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}`;
  },

  // 获取订单状态文本
  getStatusText: function (status) {
    const statusMap = {
      0: '待处理',
      1: '处理中',
      2: '已完成',
      3: '已取消'
    };
    return statusMap[status] || '未知状态';
  },

  // 获取订单状态颜色
  getStatusColor: function (status) {
    const colorMap = {
      0: '#ff9800', // 橙色 - 待处理
      1: '#2196f3', // 蓝色 - 处理中
      2: '#4caf50', // 绿色 - 已完成
      3: '#f44336'  // 红色 - 已取消
    };
    return colorMap[status] || '#999';
  },

  // 预览图片
  previewImage: function (e) {
    const src = e.currentTarget.dataset.src;
    wx.previewImage({
      current: src,
      urls: [src]
    });
  }
})
